Technote 1060Controlling Apps with Synthesized Events,
|
CONTENTS
jGNEFilter Fundamentals |
Until now,
jGNEFilter has been "under documented," with only vague
mentions appearing in Technote
TB 11: GetNextEvent; Blinking Apple Menu.
jGNEFilter
is the name of a mechanism by which programs can obtain
access to each
EventRecord just before the event is sent to
the caller of
GetNextEvent or WaitNextEvent .
Using Developers who would like to make use of
|
jGNEFilter FundamentalsThe interface to The process of installing a As is always the case with low memory, you should access
All |
jGNEFilter "Gotchas"The following section discusses the two important edge cases that
you need to take into consideration when installing a The Low Memory Context Switching GotchaMost low-memory global variables are swapped in and out of low memory on a process-by-process basis. (Their values live in the Process Manager's storage while they're swapped out.) This was done in the early days of MultiFinder to appease applications that assumed they owned the whole machine.
An application installing a The solution for applications that want to install a
You declare a struct for storing an absolute jump instruction as shown in listing 3.
After calling The Unexpectedly NIL Filter Routine Address GotchaSince the system uses The Re-entrancy Gotcha
|
jGNEFilter LimitationsCompared to other mechanisms, Not a ProcessAny system call that relies on the current process to establish
some sort of unique identity is not going to work very well. The
reason is that a For example, the AppleEvent Manager uses the current process to
identify the sender of an Apple event. A If you need a process, consider starting up a background-only
application, either via International Keystrokes"Fake" If your program needs access to key strokes and will be sold into a
market where WorldScript is in heavy use, you may be better off
patching Text Services Manager BugsIn the presence of a Text Services Manager input-method window
(usually called, simply, a TSM window), some mouseDown events may not
be sent to the |
SummaryThe |
Further Reference |
Downloadables |
Change History
|